package dao;

import java.util.List;

import modelo.Municipio;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import utils.SessionFactory;


public class MunicipioDAO {
	public static final long UNSAVED_ID = 0;
	
	public void persiste(Municipio municipio, Session session) throws Exception{
		if(municipio.getId()==UNSAVED_ID)
			adiciona(municipio, session);
		else
			atualiza(municipio, session);
	}
	
	public static void adiciona(Municipio municipio, Session session) throws Exception{
		session.save(municipio);
	}

	public static void remove(Municipio municipio, Session session) throws Exception{
		session.delete(municipio);
	}

	public static void atualiza(Municipio municipio, Session session) throws Exception{
		session.update(municipio);
	}

	public static Municipio obtem(long id, Session session) throws Exception{
		return (Municipio) session.load(Municipio.class, id);
	}
	
	public static List<Municipio> listar(String filtro, Session session) throws Exception{
		Criteria crit = session.createCriteria(Municipio.class);
		return crit.list();
		
	}
}
